﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MachineQA.Model;

namespace MachineQA.DataAccess
{
    public interface IEnergyRepository
    {
        event EventHandler<EnergyAddedOrRemovedEventArgs> EnergyAddedOrRemoved;

        /// <summary>
        /// Add a energy to the repository.
        /// </summary>
        /// <param name="energy">The energy to add.</param>
        void AddEnergy(Energy energy);

        /// <summary>
        /// Remove an energy from the repository.
        /// </summary>
        /// <param name="energy">The energy to remove.</param>
        void RemoveEnergy(Energy energy);

        /// <summary>
        /// Get the energies contained in the repository.
        /// </summary>
        /// <returns>The energies contained in the repository as a List<Energy></returns>
        List<Energy> GetEnergies();

        /// <summary>
        /// Determines if the energy exists in the repository.
        /// </summary>
        /// <param name="energy">The energy to look for.</param>
        /// <returns>Whether or not the energy is in the repository.</returns>
        bool ContainsEnergy(Energy energy);
    }
}
